import { fileURLToPath, URL } from 'node:url';
import { defineConfig, loadEnv } from 'vite'; // 引入 loadEnv
import vue from '@vitejs/plugin-vue';
import vueDevTools from 'vite-plugin-vue-devtools';

export default defineConfig(({ mode }) => {
    // 加载环境变量这个才是这个正确的解决办法
    const env = loadEnv(mode, process.cwd());

    return {
        plugins: [
            vue(),
            vueDevTools(),
        ],
        resolve: {
            alias: {
                '@': fileURLToPath(new URL('./src', import.meta.url)),
            },
        },
        server: {
            port: env.VITE_APP_PORT, // 设置开发服务器的端口号为 3000
            host: '0.0.0.0', // 允许外部访问（可选）
            strictPort: true, // 如果端口被占用，则抛出错误（可选）
            open: true, // 自动打开浏览器（可选）
            proxy: {
                // 代理规则 1：将 /api 路径的请求转发到目标服务器
                '/api': {
                    target: env.VITE_APP_API_URL, // 使用从 .env 文件加载的环境变量
                    changeOrigin: true,            // 是否更改请求的源地址
                    rewrite: (path) => path.replace(/^\/api/, ''), // 重写路径，去掉 /api 前缀
                },
                // 代理规则 2：将 /auth 路径的请求转发到另一个服务器
                '/auth': {
                    target: 'http://example.com',
                    changeOrigin: true,
                    rewrite: (path) => path.replace(/^\/auth/, ''),
                },
            },
        },
    };
});